Option Explicit
Sub H_Sample011()
    'ոH_Data01
    Dim myPcsh As PivotCache
    Dim myPtbl As PivotTable
    Dim myPfld As PivotField
    Dim mySht1 As Worksheet
    Dim mySht2 As Worksheet
    Dim myRng  As Range
    Dim myStr  As String
    Dim i      As Long
    'w¦
    Set mySht1 = Worksheets("H_Data01")
    Set mySht2 = Worksheets.Add
    Set myRng = mySht1.Range("A1").CurrentRegion
    ']ExcelӶi椣PBz
    Select Case Application.Version
        Case "10.0"
            Set myPcsh = ThisWorkbook.PivotCaches.Add( _
            SourceType:=xlDatabase, _
            SourceData:=myRng)
        Case "9.0"
            With Application.Names.Add("tmp", myRng)
                myStr = Mid(.RefersToR1C1, 2)
                .Delete
            End With
            Set myPcsh = ThisWorkbook.PivotCaches.Add( _
            SourceType:=xlDatabase, _
            SourceData:=myStr)
        Case Else
            MsgBox "TC"
            Exit Sub
    End Select
    Set myPtbl = myPcsh.CreatePivotTable( _
    TableDestination:=mySht2.Range("a1"))
    'wһs@ϯäR
    With myPtbl
        .PivotFields("O").Orientation = xlColumnField
        For i = 4 To 7
            Set myPfld = .PivotFields(i)
            With myPfld
                myStr = .Name
                .Orientation = xlDataField
                .Caption = myStr & "Ave"
                .Function = xlAverage
                .NumberFormat = "0.00_ "
            End With
        Next
    End With
    'Excel2002SOBz
    'ActiveWorkbook.ShowPivotTableFieldList = False
    Set mySht1 = Nothing				'
    Set mySht2 = Nothing
    Set myRng = Nothing
    Set myPcsh = Nothing
    Set myPtbl = Nothing
    Set myPfld = Nothing
End Sub
